package com.mask.mr;

import org.apache.hadoop.conf.Configuration;
import org.apache.hadoop.fs.Path;
import org.apache.hadoop.io.IntWritable;
import org.apache.hadoop.io.Text;
import org.apache.hadoop.mapreduce.Job;
import org.apache.hadoop.mapreduce.lib.input.FileInputFormat;
import org.apache.hadoop.mapreduce.lib.output.FileOutputFormat;

public class JobMain {
	// 在windows中操作hadoop
	public static void main(String[] args) throws Exception {
		// 获取Job对象：用来处理MapReduce
		Configuration conf = new Configuration();
		Job job = Job.getInstance(conf);
		// 获取数据文件
		String inPath = "/Users/hx/Documents/massz.edu.cn/bigData/data_project/input/input.txt"; //在定义路径时只需到文件夹就可以，不需要写出文件
		String outPath = "/Users/hx/Documents/massz.edu.cn/bigData/data_project/output"; // 输出文件夹必须不存在，需要程序自己创建
		FileInputFormat.setInputPaths(job, new Path(inPath));
		// 相关的配置 -- Map和Reduce程序
		job.setMapperClass(WordMapper.class);
		job.setReducerClass(WordReducer.class);
		// 设置Map的输出结果
		job.setMapOutputKeyClass(Text.class);
		job.setMapOutputValueClass(IntWritable.class);
		// 设置Reduce的输出结果
		job.setOutputKeyClass(Text.class);
		job.setOutputValueClass(IntWritable.class);
		// 输出运行结果
		FileOutputFormat.setOutputPath(job, new Path(outPath));
		// 结束程序
		boolean res = job.waitForCompletion(true);
		System.exit(res?0:1);
	}
}